ALMaSS  1.0
The Animal, Landscape and Man Simulation System
Rabbit_Male Class Reference

The rabbit male class. All special male behaviour is described here. More...

#include <Rabbit.h>

Inheritance diagram for Rabbit_Male:
Rabbit_Adult Rabbit_Base TAnimal TALMaSSObject

Public Member Functions

 Rabbit_Male (int p_x, int p_y, int p_x2, int p_y2, Landscape *p_L, Rabbit_Population_Manager *p_NPM, int a_age, int a_weightage, Rabbit_Warren *a_warren)
 Rabbit_Male constructor. More...
 
virtual ~Rabbit_Male (void)
 Rabbit_Male destructor. More...
 
virtual void Step (void)
 The male rabbit step code. More...
 
- Public Member Functions inherited from Rabbit_Adult
 Rabbit_Adult (int p_x, int p_y, int p_x2, int p_y2, Landscape *p_L, Rabbit_Population_Manager *p_NPM, int a_age, int a_weightage, Rabbit_Warren *a_warren)
 Rabbit_Adult constructor. More...
 
virtual ~Rabbit_Adult ()
 Rabbit_Adult destructor. More...
 
TTypesOfRabbitSocialStatus GetSocialStatus (void)
 Return the dominance status. More...
 
void SetSocialStatus (TTypesOfRabbitSocialStatus a_status)
 Sets the dominance status. More...
 
void SetMate (Rabbit_Adult *a_mate)
 Set/unset mate status. More...
 
virtual Rabbit_AdultGetMate (void)
 Get mate pointer. More...
 
void OnMateFinishedDigging (Rabbit_Adult *a_mate)
 Action when a mate has finished digging a burrow. More...
 
void OnMateDead (Rabbit_Adult *a_mate)
 Set/unset mate status. More...
 
- Public Member Functions inherited from Rabbit_Base
TTypeOfRabbitState GetCurrentRState ()
 
void SetAge (int a_age)
 Set age method. More...
 
RabbitObjectTypes GetRabbitType (void)
 Get rabbit type. More...
 
int GetAge (void)
 Get age method. More...
 
void SetweightAge (int a_age)
 Set age method. More...
 
int GetweightAge (void)
 Get age method. More...
 
Rabbit_WarrenGetWarren (void)
 Get warren pointer. More...
 
void SetWarren (Rabbit_Warren *a_warren)
 Set the warren pointer. More...
 
bool GetHasBurrow (void)
 Get burrow status. More...
 
void SetHasBurrow (bool a_status)
 Set/unset burrow status. More...
 
void SetDigging (int a_days)
 Set number of days to dig. More...
 
int GetDigging ()
 Get number of days to dig. More...
 
APoint GetBornLocation ()
 Get location of birth. More...
 
 Rabbit_Base (int p_x, int p_y, int p_x2, int p_y2, Landscape *p_L, Rabbit_Population_Manager *p_NPM, Rabbit_Warren *a_warren)
 Rabbit constructor. More...
 
virtual ~Rabbit_Base (void)
 Rabbit destructor. More...
 
virtual void BeginStep (void)
 The BeginStep is the first 'part' of the timestep that an animal can behave in. It is called once per timestep. More...
 
void OnFed (void)
 Signals food arrived today. More...
 
void OnMumDead (void)
 Signals death of mum. More...
 
void OnEvicted (void)
 Signals mum has a new litter to look after. More...
 
- Public Member Functions inherited from TAnimal
unsigned SupplyFarmOwnerRef ()
 
AnimalPosition SupplyPosition ()
 
APoint SupplyPoint ()
 
int SupplyPolygonRef ()
 
int Supply_m_Location_x ()
 
int Supply_m_Location_y ()
 
virtual void KillThis ()
 
virtual void CopyMyself ()
 
void SetX (int a_x)
 
void SetY (int a_y)
 
 TAnimal (int x, int y, Landscape *L)
 
virtual void ReinitialiseObject (int x, int y, Landscape *L)
 Used to re-use an object - must be implemented in descendent classes. More...
 
virtual int WhatState ()
 
virtual void Dying ()
 
void CheckManagement (void)
 
void CheckManagementXY (int x, int y)
 
virtual bool OnFarmEvent (FarmToDo)
 
- Public Member Functions inherited from TALMaSSObject
int GetCurrentStateNo ()
 Returns the current state number. More...
 
void SetCurrentStateNo (int a_num)
 Sets the current state number. More...
 
bool GetStepDone ()
 Returns the step done indicator flag. More...
 
void SetStepDone (bool a_bool)
 Sets the step done indicator flag. More...
 
virtual void ReinitialiseObject ()
 Used to re-use an object - must be implemented in descendent classes. More...
 
 TALMaSSObject ()
 The constructor for TALMaSSObject. More...
 
virtual ~TALMaSSObject ()
 The destructor for TALMaSSObject. More...
 
void OnArrayBoundsError ()
 Used for debugging only, tests basic object properties. More...
 

Protected Member Functions

virtual TTypeOfRabbitState st_EvaluateTerritory (void)
 Male Evaluate Territory Step. More...
 
virtual TTypeOfRabbitState st_Forage (void)
 Adult male forage behaviour. More...
 
virtual void InternalPesticideHandlingAndResponse ()
 Handles internal effects of pesticide exposure - reimplemented from base class. More...
 
- Protected Member Functions inherited from Rabbit_Adult
virtual void st_Dying (void)
 Default dying state. More...
 
virtual void EndStep (void)
 The EndStep is the last 'part' of the timestep that an animal can behave in. More...
 
- Protected Member Functions inherited from Rabbit_Base
virtual void Explore (void)
 Exploration method. More...
 
bool MortalityTest (double a_prop)
 A simple probability based test. More...
 
bool WalkTo (int a_x, int a_y)
 Walks to a location from current location. More...
 
virtual void GeneralEndocrineDisruptor (double)
 Handles internal effects of endocrine distrupter pesticide exposure.
More...
 
virtual void GeneralOrganoPhosphate (double)
 Handles internal effects of organophosphate pesticide exposure. More...
 
- Protected Member Functions inherited from TAnimal
void CorrectWrapRound ()
 Corrects wrap around co-ordinate problems. More...
 

Additional Inherited Members

- Public Attributes inherited from Rabbit_Base
RabbitObjectTypes m_RabbitType
 The rabbits type. More...
 
- Static Public Attributes inherited from Rabbit_Base
static double m_dispersalmortperm = cfg_dispersalmortperm.value()
 The extra dispersal mortality per m travelled. More...
 
static double m_pesticidedegradationrate = cfg_rabbit_pesticidedegradationrate.value()
 State variable used to hold the daily degredation rate of the pesticide in the body. More...
 
- Protected Attributes inherited from Rabbit_Adult
TTypesOfRabbitSocialStatus m_socialstatus
 Flag to record dominance status (0-4) More...
 
int m_lifespan
 The rabbit's alloted lifespan. More...
 
Rabbit_Adultm_myMate
 Pointer to the mate if any. More...
 
- Protected Attributes inherited from Rabbit_Base
int m_Age
 The rabbit's age. More...
 
TTypeOfRabbitState m_CurrentRState
 Variable to record current behavioural state. More...
 
Rabbit_Population_Managerm_OurPopulationManager
 This is a time saving pointer to the correct population manager object. More...
 
double m_MyMortChance
 
bool m_haveBurrow
 Flag to record burrow status. More...
 
Rabbit_Warrenm_myWarren
 True if currently mated. More...
 
Rabbit_Femalem_Mum
 Pointer to mum. More...
 
bool m_FedToday
 Flag for been fed today. More...
 
double m_weight
 The weight in g. More...
 
int m_weightAge
 A physiological age parameter, this is the growth age based on an optimal curve (if optimal conditions it will be the same as m_age) More...
 
int m_digging
 Flag to denote digging behaviour. This keeps the rabbit in a warren without burrows whilst it tries to make one. More...
 
APoint m_born_location
 The x,y location at birth. More...
 
double m_pesticide_burden
 State variable used to hold the current body-burden of pesticide. More...
 
bool m_pesticideInfluenced1
 Flag to indicate pesticide effects (e.g. can be used for endocrine distruptors with delayed effects until birth).
More...
 
- Protected Attributes inherited from TAnimal
int m_Location_x
 
int m_Location_y
 
Landscapem_OurLandscape
 
- Protected Attributes inherited from TALMaSSObject
int m_CurrentStateNo
 The basic state number for all objects - '-1' indicates death. More...
 
bool m_StepDone
 Indicates whether the iterative step code is done for this timestep. More...
 

Detailed Description

The rabbit male class. All special male behaviour is described here.

Constructor & Destructor Documentation

◆ Rabbit_Male()

Rabbit_Male::Rabbit_Male ( int  p_x,
int  p_y,
int  p_x2,
int  p_y2,
Landscape p_L,
Rabbit_Population_Manager p_NPM,
int  a_age,
int  a_weightage,
Rabbit_Warren a_warren 
)

Rabbit_Male constructor.

719  : Rabbit_Adult(p_x, p_y, p_x2, p_y2, p_L, p_NPM, a_age, a_weightage, a_warren)
720 {
722  if (a_warren != NULL) a_warren->RabbitProductionRecord(rob_Male, 1);
723 }
@ rob_Male
Definition: Rabbit.h:72
Rabbit_Adult(int p_x, int p_y, int p_x2, int p_y2, Landscape *p_L, Rabbit_Population_Manager *p_NPM, int a_age, int a_weightage, Rabbit_Warren *a_warren)
Rabbit_Adult constructor.
Definition: Rabbit.cpp:523
RabbitObjectTypes m_RabbitType
The rabbits type.
Definition: Rabbit.h:170
void RabbitProductionRecord(RabbitObjectTypes YoungType, int kits)
Stores data about production of rabbits throughout year.
Definition: Rabbit.h:582

References Rabbit_Base::m_RabbitType, Rabbit_Warren::RabbitProductionRecord(), and rob_Male.

◆ ~Rabbit_Male()

Rabbit_Male::~Rabbit_Male ( void  )
virtual

Rabbit_Male destructor.

727 {
728  ;
729 }

Member Function Documentation

◆ InternalPesticideHandlingAndResponse()

void Rabbit_Male::InternalPesticideHandlingAndResponse ( )
protectedvirtual

Handles internal effects of pesticide exposure - reimplemented from base class.

This method is re-implemented ffrom Rabbit_Base for any class which has pesticide response behaviour. If the body burden exceeds the trigger then call pesticide-specific actions by dose

Reimplemented from Rabbit_Base.

1370  {
1376  double pesticideInternalConc = m_pesticide_burden / m_weight;
1377 
1378  if (pesticideInternalConc > cfg_RabbitPesticideResponse.value()) {
1379  switch (tp) {
1380  case ttop_NoPesticide:
1381  break;
1383  break;
1384  case ttop_AcuteEffects:
1385  GeneralOrganoPhosphate( pesticideInternalConc ); // Calls the GeneralOrganophosphate action code
1386  break;
1387  default:
1388  g_msg->Warn( "Unknown pesticide type used in Rabbit_Male::InternalPesticideHandlingAndResponse() pesticide code ", int( tp ) );
1389  exit( 47 );
1390  }
1391  }
1392  m_pesticide_burden *= m_pesticidedegradationrate; // Does nothing by default except internal degredation of the pesticide
1393 }
MapErrorMsg * g_msg
This pointer provides access the to the internal ALMaSS error message system.
Definition: maperrormsg.cpp:41
CfgFloat cfg_RabbitPesticideResponse("RABBIT_PESTICDERESPONSETHRESHOLD", CFG_CUSTOM, 0.00001)
Input variable. The threshold above which a rabbit will be killed if it ingests pesticide.
double value(void)
Definition: configurator.h:118
TTypesOfPesticide SupplyPesticideType(void)
Definition: landscape.h:433
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: maperrormsg.cpp:59
double m_weight
The weight in g.
Definition: Rabbit.h:195
double m_pesticide_burden
State variable used to hold the current body-burden of pesticide.
Definition: Rabbit.h:203
static double m_pesticidedegradationrate
State variable used to hold the daily degredation rate of the pesticide in the body.
Definition: Rabbit.h:174
virtual void GeneralOrganoPhosphate(double)
Handles internal effects of organophosphate pesticide exposure.
Definition: Rabbit.cpp:1438
Landscape * m_OurLandscape
Definition: PopulationManager.h:229
TTypesOfPesticide
Definition: landscape.h:66
@ ttop_NoPesticide
Definition: landscape.h:67
@ ttop_AcuteEffects
Definition: landscape.h:68
@ ttop_ReproductiveEffects
Definition: landscape.h:69

References cfg_RabbitPesticideResponse, g_msg, Rabbit_Base::GeneralOrganoPhosphate(), TAnimal::m_OurLandscape, Rabbit_Base::m_pesticide_burden, Rabbit_Base::m_pesticidedegradationrate, Rabbit_Base::m_weight, Landscape::SupplyPesticideType(), ttop_AcuteEffects, ttop_NoPesticide, ttop_ReproductiveEffects, CfgFloat::value(), and MapErrorMsg::Warn().

◆ st_EvaluateTerritory()

TTypeOfRabbitState Rabbit_Male::st_EvaluateTerritory ( void  )
protectedvirtual

Male Evaluate Territory Step.

Returns
The next behavioural state. The only legal returns are toRabbits_EvaluateTerritory and toRabbits_Die

The rabbit must evaluate his territory and decide if he will stay or leave. This decision is based on a number of criteria:

  1. An evaluation of the social mate status
  2. An evaluation of the current mate status
  3. An evaluation of the current territory quality
  4. A comparison with potential areas explored nearby

Here we make the assumption that if suitable quality unoccupied territory is known to be available and the rabbit is not dominant, then it will move to set up a territory there. If none is avaible or known, then the rabbit will remain as subordinate as long as the current territory can support him. If he is forced out he must find a vacent place or will die. If he stays he may become dominant one day.

If he has no mate (he may be digging and not have a burrow) then before anything else we need to evaluate our current warren for possibilities - could be vacant burrow or mate here for us. If no warren for some reason (could be start-up conditions), then find one.

Next he moves there, and assesses whether he can join

If there is a free burrow then joining is certain. If the warren site is unoccupied then currently the rabbit will join it and start to dig. This behaviour might need to be altered later, if rabbits might not start up alone so easily.

If nothing doing locally the Rabbit will move if conditions elsewhere are better and is not dominant or mated:

  • If itinerent, possible free territory -> move
  • If a mate is possible in the new place -> move
776  {
793  if (m_socialstatus > rabbit_socialstatus_subordinate) return toRabbits_Foraging; // Do it all again tomorrow, we are at the top or near the top of the heap in social terms
794  if (m_myMate != NULL) {
795 #ifdef __RABBITDEBUG
796  if (m_digging < 0) {
797  int rubbish = 0;
798  }
799  if (m_haveBurrow) {
800  int rubbish = 0;
801  }
802 #endif
803  return toRabbits_Foraging; // Must be digging a burrow
804  }
805 
806  if (m_myWarren == NULL) {
807  // Must find a warren - finds the closest - NB this code should not often be used, so efficiency here has not been optimised
810  bool survived = WalkTo( aRW->Supply_m_Location_x(), aRW->Supply_m_Location_y() );
811  if (!survived) return toRabbits_Die;
812  if (aRW->IsFreeFemale()) {
813  aRW->JoinNMate( this, rob_Female );
814  }
819  else {
820  int burrow = aRW->IsFreeBurrow();
821  if (burrow == 1) {
822  aRW->JoinNOccupy( this );
823  }
824  else
825  if (burrow == 2) {
826  aRW->OccupyWarren( this );
827  }
828  }
829  return toRabbits_Foraging;
830  }
831  else if (m_myWarren->IsFreeFemale()) {
832  m_myWarren->Mate( this, rob_Female );
833  }
834  else if (m_myWarren->IsFreeBurrow() == 1) {
836  SetDigging( -1 );
838  SetHasBurrow( true );
839  }
840  else if (m_digging > 0) {
841  return toRabbits_Foraging;
842  }
843  else
849  {
851  if (aWarren != NULL) {
852  if (aWarren->IsFreeFemale()) {
853  bool survived = WalkTo( aWarren->Supply_m_Location_x(), aWarren->Supply_m_Location_y() );
854  if (!survived) return toRabbits_Die;
855  m_myWarren->Leave( this );
856  aWarren->JoinNMate( this, rob_Female );
857  }
858  else {
859  int burrows = aWarren->IsFreeBurrow();
860  if (burrows == 1) {
861  bool survived = WalkTo( aWarren->Supply_m_Location_x(), aWarren->Supply_m_Location_y() );
862  if (!survived) return toRabbits_Die;
863  m_myWarren->Leave( this );
864  aWarren->JoinNOccupy( this );
866  }
867  else if (burrows == 2) {
868  bool survived = WalkTo( aWarren->Supply_m_Location_x(), aWarren->Supply_m_Location_y() );
869  if (!survived) return toRabbits_Die;
870  m_myWarren->Leave( this );
871  aWarren->OccupyWarren( this );
872  m_socialstatus = rabbit_socialstatus_subordinate; // Can dig a burrow but don't have one
873  }
874  else {
875  // No room but we may need to move anyway
876  int c = m_myWarren->GetCarryingCapacity();
877  int n = m_myWarren->GetPopulationSize() - (c * 2); // c is number of pairs, but there are 2 + a litter (average 6) as a minimum
878  double occupation = n / (double)c;
879  if (g_rand_uni() < occupation) {
880  bool survived = WalkTo( aWarren->Supply_m_Location_x(), aWarren->Supply_m_Location_y() );
881  if (!survived) return toRabbits_Die;
882  m_myWarren->Leave( this );
883  aWarren->Join( this );
884  SetDigging( -1 );
886  }
887  }
888  }
889  }
890  }
891  return toRabbits_Foraging; // Do it all again tomorrow
892 }
boost::variate_generator< base_generator_type &, boost::uniform_real<> > g_rand_uni
@ rabbit_socialstatus_subdominant
Definition: Rabbit.h:114
@ rabbit_socialstatus_zero
Definition: Rabbit.h:112
@ rabbit_socialstatus_subordinate
Definition: Rabbit.h:113
@ rob_Female
Definition: Rabbit.h:73
@ toRabbits_Foraging
Definition: Rabbit.h:92
@ toRabbits_Die
Definition: Rabbit.h:96
Rabbit_Adult * m_myMate
Pointer to the mate if any.
Definition: Rabbit.h:409
void SetSocialStatus(TTypesOfRabbitSocialStatus a_status)
Sets the dominance status.
Definition: Rabbit.h:391
TTypesOfRabbitSocialStatus m_socialstatus
Flag to record dominance status (0-4)
Definition: Rabbit.h:405
bool m_haveBurrow
Flag to record burrow status.
Definition: Rabbit.h:185
Rabbit_Population_Manager * m_OurPopulationManager
This is a time saving pointer to the correct population manager object.
Definition: Rabbit.h:181
void SetDigging(int a_days)
Set number of days to dig.
Definition: Rabbit.h:250
void SetHasBurrow(bool a_status)
Set/unset burrow status.
Definition: Rabbit.h:246
int m_digging
Flag to denote digging behaviour. This keeps the rabbit in a warren without burrows whilst it tries t...
Definition: Rabbit.h:199
Rabbit_Warren * m_myWarren
True if currently mated.
Definition: Rabbit.h:189
bool WalkTo(int a_x, int a_y)
Walks to a location from current location.
Definition: Rabbit.cpp:205
Rabbit_Warren * FindClosestWarren(int a_x, int a_y, int a_rank)
Finds the closest warren as the crow flies.
Definition: Rabbit_Population_Manager.cpp:692
A class to describe the rabbits warren system.
Definition: Rabbit.h:519
int IsFreeBurrow(void)
Is there a vacent burrow?
Definition: Rabbit.cpp:2035
void OccupyBurrow()
a_rabbit occupies a free burrow
Definition: Rabbit.cpp:2077
bool IsFreeFemale(void)
Returns true if there is a female with a burrow and no mate.
Definition: Rabbit.cpp:1979
void Mate(Rabbit_Adult *a_mate, RabbitObjectTypes rob_type)
Mate him with un-mated female/male with a burrow.
Definition: Rabbit.cpp:2169
void Join(Rabbit_Base *a_rabbit)
Adds this rabbit to the warren list.
Definition: Rabbit.cpp:2061
Rabbit_Warren * GetNetworkWarren(void)
Chooses a warren to evaluate based on distance.
Definition: Rabbit.cpp:1913
int GetCarryingCapacity()
Returns the carrying capacity in burrows.
Definition: Rabbit.h:578
int GetPopulationSize()
Gets the total warren population of rabbits.
Definition: Rabbit.h:572
void JoinNOccupy(Rabbit_Adult *a_rabbit)
Adds this adult to the warren list and house them in a suitable burrow.
Definition: Rabbit.cpp:2091
void OccupyWarren(Rabbit_Adult *a_rabbit)
Adds the first rabbit to the warren list.
Definition: Rabbit.cpp:2083
void Leave(Rabbit_Base *a_rabbit)
Remove this adult from the warren list.
Definition: Rabbit.cpp:2117
void JoinNMate(Rabbit_Adult *a_mate, RabbitObjectTypes rob_type)
Adds this rabbit to the warren list and mate him with un-mated female/male with a burrow.
Definition: Rabbit.cpp:2224
int m_Location_y
Definition: PopulationManager.h:228
int Supply_m_Location_x()
Definition: PopulationManager.h:213
int m_Location_x
Definition: PopulationManager.h:225
int Supply_m_Location_y()
Definition: PopulationManager.h:216

References Rabbit_Population_Manager::FindClosestWarren(), g_rand_uni, Rabbit_Warren::GetCarryingCapacity(), Rabbit_Warren::GetNetworkWarren(), Rabbit_Warren::GetPopulationSize(), Rabbit_Warren::IsFreeBurrow(), Rabbit_Warren::IsFreeFemale(), Rabbit_Warren::Join(), Rabbit_Warren::JoinNMate(), Rabbit_Warren::JoinNOccupy(), Rabbit_Warren::Leave(), Rabbit_Base::m_digging, Rabbit_Base::m_haveBurrow, TAnimal::m_Location_x, TAnimal::m_Location_y, Rabbit_Adult::m_myMate, Rabbit_Base::m_myWarren, Rabbit_Base::m_OurPopulationManager, Rabbit_Adult::m_socialstatus, Rabbit_Warren::Mate(), Rabbit_Warren::OccupyBurrow(), Rabbit_Warren::OccupyWarren(), rabbit_socialstatus_subdominant, rabbit_socialstatus_subordinate, rabbit_socialstatus_zero, rob_Female, Rabbit_Base::SetDigging(), Rabbit_Base::SetHasBurrow(), Rabbit_Adult::SetSocialStatus(), TAnimal::Supply_m_Location_x(), TAnimal::Supply_m_Location_y(), toRabbits_Die, toRabbits_Foraging, and Rabbit_Base::WalkTo().

Referenced by Step().

◆ st_Forage()

TTypeOfRabbitState Rabbit_Male::st_Forage ( void  )
protectedvirtual

Adult male forage behaviour.

This is a critical part of the pesticide handling code. The rabbit forages from the warren area and as a result picks up pesticide. Exactly how much pesticide is picked up depends on the assumptions regarding foraging behaviour. These can be altered here, but the default assumption is that the rabbit will forage from all suitable forgage locations equally, and therefore will pick up an average or maximum dose based on the concentration of residue in the forage areas. This is precalculated by the Rabbit_Warren in UpdatePesticide. The pesticide response code is placed in EndStep - this will determine direct mortality or set any necessary flags indicating pesticide effects later, e.g. for reproduction.

763 {
773 }
@ toRabbits_EvaluateTerritory
Definition: Rabbit.h:93
double GetForagePesticide(void)
Gets the current mean pesticide concentration per unit forage.
Definition: Rabbit.h:628

References Rabbit_Warren::GetForagePesticide(), Rabbit_Base::m_myWarren, Rabbit_Base::m_pesticide_burden, and toRabbits_EvaluateTerritory.

Referenced by Step().

◆ Step()

void Rabbit_Male::Step ( void  )
virtual

The male rabbit step code.

Reimplemented from Rabbit_Base.

733 {
734  if (m_StepDone || m_CurrentStateNo == -1) return;
735  switch (m_CurrentRState)
736  {
737  case toRabbits_InitialState: // Initial state always starts with develop
739  break;
740  case toRabbits_EvaluateTerritory: // Initial state always starts with develop
742  m_StepDone=true;
743  break;
744  case toRabbits_Foraging:
746  break;
747  case toRabbits_Die:
748  st_Dying(); // No return value - no behaviour after this
749  m_StepDone=true;
750  break;
751  case toRabbits_Remove:
752  m_CurrentStateNo = -1;
753  m_StepDone=true;
754  break;
755  default:
756  m_OurLandscape->Warn("Rabbit_Male::Step()","unknown state - default");
757  exit(1);
758  }
759 }
@ toRabbits_Remove
Definition: Rabbit.h:95
@ toRabbits_InitialState
Definition: Rabbit.h:84
void Warn(std::string a_msg1, std::string a_msg2)
Definition: landscape.h:1579
virtual void st_Dying(void)
Default dying state.
Definition: Rabbit.cpp:691
TTypeOfRabbitState m_CurrentRState
Variable to record current behavioural state.
Definition: Rabbit.h:179
virtual TTypeOfRabbitState st_EvaluateTerritory(void)
Male Evaluate Territory Step.
Definition: Rabbit.cpp:776
virtual TTypeOfRabbitState st_Forage(void)
Adult male forage behaviour.
Definition: Rabbit.cpp:762
bool m_StepDone
Indicates whether the iterative step code is done for this timestep.
Definition: PopulationManager.h:118
int m_CurrentStateNo
The basic state number for all objects - '-1' indicates death.
Definition: PopulationManager.h:116

References Rabbit_Base::m_CurrentRState, TALMaSSObject::m_CurrentStateNo, TAnimal::m_OurLandscape, TALMaSSObject::m_StepDone, Rabbit_Adult::st_Dying(), st_EvaluateTerritory(), st_Forage(), toRabbits_Die, toRabbits_EvaluateTerritory, toRabbits_Foraging, toRabbits_InitialState, toRabbits_Remove, and Landscape::Warn().


The documentation for this class was generated from the following files: